home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / mui / mui-tools / deft ii / sources / deft_ii.em < prev    next >
Text File  |  1995-03-09  |  4KB  |  185 lines

  1. OPT OSVERSION = 37
  2.  
  3.  
  4. /*/////////////////////////////////////////////////////////////////////////////
  5. ///////////////////////////////////////////////////////////// Macro files /////
  6. ///////////////////////////////////////////////////////////////////////////////
  7. MACROS 'MUI.pma'
  8. */
  9.  
  10.  
  11. ->*****
  12. ->** External modules
  13. ->*****
  14. MODULE 'locale'
  15. MODULE 'muimaster' , 'libraries/mui'
  16. MODULE 'tools/boopsi' , 'tools/installhook'
  17. MODULE 'icon'
  18.  
  19. MODULE '*Defs'
  20. MODULE '*GUI_MUIB'
  21. MODULE '*Locale'
  22. MODULE '*Errors'
  23. MODULE '*PrefsFile'
  24. MODULE '*DefaultTools'
  25. MODULE '*Arexx'
  26. MODULE '*GUI'
  27. MODULE '*Work'
  28.  
  29.  
  30. ->*****
  31. ->** Error handling
  32. ->*****
  33. RAISE    "MEM"    IF String()    = NIL
  34.  
  35.  
  36. ->*****
  37. ->** Global variables
  38. ->*****
  39. DEF deftII                    :    PTR TO obj_app
  40. DEF cat                        :    PTR TO catalog_DeftII
  41. DEF modified                :    LONG
  42. DEF current_edited_path        =    NO_CURRENT_EDITED_PATH
  43. DEF current_edited_def_tool    =    NO_CURRENT_EDITED_DEF_TOOL
  44.  
  45.  
  46. /******************/
  47. /* Main procedure */
  48. /******************/
  49. PROC main() HANDLE
  50.  
  51.     DEF running = TRUE , result_DoMethod , signal
  52.     DEF file_requester_active
  53.     DEF display : obj_display
  54.     DEF icon = NIL
  55.  
  56.     localebase := OpenLibrary( 'locale.library' , 0 )
  57.     NEW cat.create()
  58.     cat.open( NIL , NIL )
  59.  
  60.     IF ( muimasterbase := OpenLibrary( 'muimaster.library' , MUIMASTER_VMIN ) ) = NIL THEN Throw( "LIB" , "muim" )
  61.  
  62.     IF ( iconbase := OpenLibrary( 'icon.library' , 0 ) ) THEN icon := GetDiskObject( 'PROGDIR:Deft II' ) ELSE Throw( "LIB" , "icon" )
  63.  
  64.     installhook(    display.display_def_tool    ,    {display_def_tool}            )
  65.     installhook(    display.compare_def_tool    ,    {compare_def_tool}            )
  66.     installhook(    display.str_obj                ,    {open_new_def_tools_list}    )
  67.     installhook(    display.obj_str                ,    {close_new_def_tools_list}    )
  68.     NEW deftII
  69.     IF deftII.create( icon , init_arexx() , display ) = NIL THEN Throw( "MUI" , Mui_Error() )
  70.  
  71.     init_gui()
  72.     load_prefs()
  73.     init_def_tools()
  74.     init_go()
  75.  
  76.         -> Main loop
  77.     WHILE running
  78.  
  79.         result_DoMethod := domethod( deftII.app , [ MUIM_Application_Input , {signal} ] )
  80.         SELECT result_DoMethod
  81.  
  82.             CASE ID_BT_ABOUT
  83.  
  84.                 Mui_RequestA(    deftII.app , deftII.wi_main , NIL ,
  85.                                 cat.msg_About_DeftII.getstr() ,
  86.                                 cat.msg_OK.getstr() ,
  87.                                 cat.msg_About_Text.getstr() ,
  88.                                 NIL )
  89.  
  90.             CASE MUIV_Application_ReturnID_Quit
  91.  
  92.                 get( deftII.pa_path , MUIA_Popasl_Active , {file_requester_active} )
  93.  
  94.                 IF file_requester_active
  95.  
  96.                     deftII_error( cat.msg_File_Requester_Still_Opened.getstr() )
  97.  
  98.                 ELSE
  99.  
  100.                     IF modified
  101.  
  102.                         IF deftII_request( cat.msg_Really_Quit.getstr() ) = 1 THEN running := FALSE
  103.  
  104.                     ELSE
  105.  
  106.                         running := FALSE
  107.  
  108.                     ENDIF
  109.  
  110.                 ENDIF
  111.  
  112.         ENDSELECT
  113.  
  114.         IF ( signal AND running ) THEN Wait( signal )
  115.  
  116.     ENDWHILE
  117.  
  118.     deftII.dispose()
  119.     IF icon THEN FreeDiskObject( icon )
  120.     IF iconbase THEN CloseLibrary( iconbase )
  121.     CloseLibrary( muimasterbase )
  122.     cat.close()
  123.     IF localebase THEN CloseLibrary( localebase )
  124.  
  125. EXCEPT
  126.  
  127.     SELECT exception
  128.  
  129.         CASE "LIB"
  130.  
  131.             SELECT exceptioninfo
  132.  
  133.                 CASE "muim"
  134.  
  135.                     deftII_error_simple( cat.msg_Missing_Muimaster_Library.getstr() )
  136.  
  137.                 CASE "icon"
  138.  
  139.                     deftII_error_simple( cat.msg_Missing_Icon_Library.getstr() )
  140.  
  141.             ENDSELECT
  142.  
  143.         CASE "MEM"
  144.  
  145.             deftII_error( cat.msg_Not_Enough_Memory.getstr() )
  146.  
  147.         CASE "MUI"
  148.  
  149.             SELECT exceptioninfo
  150.  
  151.                 CASE MUIE_OutOfMemory
  152.  
  153.                     deftII_error_simple( cat.msg_Not_Enough_Memory.getstr() )
  154.  
  155.                 CASE MUIE_OutOfGfxMemory
  156.  
  157.                     deftII_error_simple( cat.msg_Not_Enough_Chip_Memory.getstr() )
  158.  
  159.                 CASE MUIE_MissingLibrary
  160.  
  161.                     deftII_error_simple( cat.msg_Missing_Library.getstr() )
  162.  
  163.                 CASE MUIE_NoARexx
  164.  
  165.                     deftII_error_simple( cat.msg_Arexx_Port.getstr() )
  166.  
  167.                 DEFAULT
  168.  
  169.                     deftII_error_simple( cat.msg_Internal_Problem.getstr() )
  170.  
  171.             ENDSELECT
  172.  
  173.     ENDSELECT
  174.  
  175.     IF deftII                 THEN deftII.dispose()
  176.     IF icon                    THEN FreeDiskObject( icon )
  177.     IF iconbase                THEN CloseLibrary( iconbase )
  178.     IF muimasterbase        THEN CloseLibrary( muimasterbase )
  179.     cat.close()
  180.     IF localebase            THEN CloseLibrary( localebase )
  181.  
  182.     CleanUp( 100 )
  183.  
  184. ENDPROC
  185.